package com.nuoniu.sibanyun.entity;

import com.baomidou.mybatisplus.annotation.TableName;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.TableField;
import com.nuoniu.sibanyun.common.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import springfox.documentation.spring.web.json.Json;

/**
 * <p>
 * 员工表
 * </p>
 *
 * @author baiqiang
 * @since 2020-05-29
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("hr_employee")
@ApiModel(value = "SysEmployee对象", description = "员工表")
public class SysEmployee extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "用户id")
    @TableField("tenant_id")
    private Long tenantId;

    @ApiModelProperty(value = "头像")
    @TableField("avatar")
    private String avatar;
    @ApiModelProperty(value = "工号")
    @TableField("ein")
    private String ein;
//    @ApiModelProperty(value = "员工工号")
//    @TableField("emp_no")
//    private String empNo;

    @ApiModelProperty(value = "员工姓名")
    @TableField("employee_name")
    private String employeeName;
    @ApiModelProperty(value = "员工id")
    @TableField(" employee_id")
    private String  employeeId;

    @ApiModelProperty(value = "英文名")
    @TableField("english_name")
    private String englishName;

    @ApiModelProperty(value = "昵称")
    @TableField("nickname")
    private String nickname;

    @ApiModelProperty(value = "昵称")
    @TableField("gender")
    private String gender;


    @ApiModelProperty(value = "机构id")
    @TableField("office_id")
    private Long officeId;

    @ApiModelProperty(value = "机构编码")
    @TableField("office_code")
    private String officeCode;

    @ApiModelProperty(value = "机构名称")
    @TableField("office_name")
    private String officeName;

//    @ApiModelProperty(value = "公司id")
//    @TableField("company_id")
//    private Long companyId;

    @ApiModelProperty(value = "公司名称")
    @TableField("tenant_name")
    private String tenantName;

    @ApiModelProperty(value = "手机号")
    @TableField("phone_number")
    private String phoneNumber;

    @ApiModelProperty(value = "状态（0在职 1删除 2离职）")
    @TableField("employment_status")
    private String employmentStatus;

    @ApiModelProperty(value = "创建者")
    @TableField("create_by")
    private Integer createBy;

    @ApiModelProperty(value = "试用期（以月为单位）")
    @TableField("probation_period")
    private Integer probationPeriod;

    @ApiModelProperty(value = "试用期到期日期")
    @TableField("date_end_of_pp")
    private LocalDateTime dateEndOfPp;

    @ApiModelProperty(value = "创建时间")
    @TableField("date_created")
    private LocalDateTime dateCreated;

    @ApiModelProperty(value = "创建时间")
    @TableField("date_of_separation")
    private LocalDateTime dateOfSeparation;

    @ApiModelProperty(value = "更新者")
    @TableField("update_by")
    private Integer updateBy;

    @ApiModelProperty(value = "更新时间")
    @TableField("date_updated")
    private LocalDateTime dateUpdated;

    @ApiModelProperty(value = "备注信息")
    @TableField("remarks")
    private String remarks;

//    @ApiModelProperty(value = "租户代码")
//    @TableField("corp_code")
//    private String corpCode;
//
//    @ApiModelProperty(value = "租户名称")
//    @TableField("corp_name")
//    private String corpName;

//    @ApiModelProperty(value = "证件姓名")
//    @TableField("certificates_name")
//    private String certificatesName;

    @ApiModelProperty(value = "证件类型")
    @TableField("certificates_type")
    private String certificatesType;

    @ApiModelProperty(value = "证件号码")
    @TableField("credential_num")
    private String credentialNum;

    @ApiModelProperty(value = "证件类型")
    @TableField("credential_type")
    private String credentialType;

    @ApiModelProperty(value = "职务")
    @TableField("duty")
    private String duty;

    @ApiModelProperty(value = "职级")
    @TableField("duty_level")
    private String dutyLevel;

    @ApiModelProperty(value = "职位")
    @TableField("position")
    private String position;

    @ApiModelProperty(value = "合同类型")
    @TableField("contract_type")
    private String contractType;

//    @ApiModelProperty(value = "员工类型")
//    @TableField("emp_type")
//    private String empType;

    @ApiModelProperty(value = "入职时间")
    @TableField("entry_date")
    private LocalDateTime entryDate;

//    @ApiModelProperty(value = "历史工龄")
//    @TableField("work_age")
//    private String workAge;

    @ApiModelProperty(value = "合同公司")
    @TableField("contract_company")
    private String contractCompany;

//    @ApiModelProperty(value = "生日类型")
//    @TableField("birthday_type")
//    private String birthdayType;

    @ApiModelProperty(value = "生日时间")
    @TableField("date_of_birth")
    private LocalDateTime dateOfBirth;

    @ApiModelProperty(value = "工作地点")
    @TableField("work_place")
    private String workPlace;

    @ApiModelProperty(value = "联系地址")
    @TableField("residential_address")
    private String residentialAddress;

    @ApiModelProperty(value = "国籍")
    @TableField("nationality")
    private String nationality;

//    @ApiModelProperty(value = "花名")
//    @TableField("names")
//    private String names;

    @ApiModelProperty(value = "民族")
    @TableField("nation")
    private String nation;

//    @ApiModelProperty(value = "户口类型")
//    @TableField("household_registration_type")
//    private String householdRegistrationType;

    @ApiModelProperty(value = "户口所在地")
    @TableField("registered_residence")
    private String registeredResidence;

    @ApiModelProperty(value = "籍贯")
    @TableField("native_place")
    private String nativePlace;

    @ApiModelProperty(value = "最高学历")
    @TableField("education")
    private String education;

    @ApiModelProperty(value = "毕业院校")
    @TableField("graduated_from")
    private String graduatedFrom;

//    @ApiModelProperty(value = "政治面貌")
//    @TableField("political_outlook")
//    private String politicalOutlook;

    @ApiModelProperty(value = "婚姻状况")
    @TableField("marital_status")
    private Integer maritalStatus;

    @ApiModelProperty(value = "健康状况")
    @TableField("health_status")
    private Integer healthStatus;

    @ApiModelProperty(value = "身高")
    @TableField("height")
    private String height;

    @ApiModelProperty(value = "体重")
    @TableField("weight")
    private String weight;

    @ApiModelProperty(value = "血型")
    @TableField("blood_type")
    private String bloodType;

    @ApiModelProperty(value = "紧急联系人")
    @TableField("emergency_contact")
    private String emergencyContact;

    @ApiModelProperty(value = "紧急联系人电话")
    @TableField("emergency_contact_phone")
    private String emergencyContactPhone;

//    @ApiModelProperty(value = "配偶姓名")
//    @TableField("spouse_name")
//    private String spouseName;
//
//    @ApiModelProperty(value = "孩子姓名")
//    @TableField("child_name")
//    private String childName;

    @ApiModelProperty(value = "qq")
    @TableField("qq")
    private String qq;

    @ApiModelProperty(value = "微信")
    @TableField("wechat")
    private String wechat;

    @ApiModelProperty(value = "邮箱")
    @TableField("email")
    private String email;

    //    @ApiModelProperty(value = "0 在职 1 离职")
//    @TableField("is_leave")
//    private String isLeave;

    @ApiModelProperty(value = "离职类型（1.辞职,2.辞退，3.自动离职）")
    @TableField("separation_type")
    private Integer separationType;

    @ApiModelProperty(value = "离职原因")
    @TableField("reason_for_leaving")
    private String reasonForLeaving;

    @ApiModelProperty(value = "已存档（0，未存档；1，以存档）")
    @TableField("archived")
    private Integer archived;

    @ApiModelProperty(value = "审核（0,未审核；1，已审核）")
    @TableField("checked")
    private Integer checked;
    
    @ApiModelProperty(value = "审核（0,未审核；1，已审核）")
    @TableField("define_fields")
    private String defineFields;

    @ApiModelProperty(value = "传数据用的name")
    @TableField(exist = false)
    private String realName;

    @ApiModelProperty(value = "传数据用的手机号")
    @TableField(exist = false)
    private String mobile;
}
